<?php

class Controller_Estrutura extends Controller_Layout {
	
	public function action_index()
	{
		$this->template->content = '';
	}
	
	public function action_create()
	{
		$this->template->render('estruturas/create');
	}
	
	public function action_save()
	{
		
		//cadastra estrutura
		$estrutura = ORM::factory('estrutura');
		$estrutura->tipo = arr::get($_POST, 'tipo');
		$estrutura->quant_blocos_torres = arr::get($_POST, 'quant_bloco');
		$estrutura->tipo_bloco_torre = arr::get($_POST, 'conf_estrutura');
		$estrutura->nomenclatura = arr::get($_POST, 'nomenclatura');
		$estrutura->condominio_id = arr::get($_POST, 'condominio_id');
		$estrutura->save();
		
		$id_estrutura = $estrutura->id;
		
		$condominio = ORM::factory('condominio', arr::get($_POST, 'condominio_id'));
		$condominio->estrutura_id = $id_estrutura;
		$condominio->save();
		
		//Array com nomenclatura das quadras
		if( arr::get($_POST, 'nomenclatura_quadra') == '1' ) //numeros
		{	
			for ($i = 0; $i < 1000; $i++)
				$array_nomenclatura_quadra[] = $i+1;
		}
		else
		{
			$array_nomenclatura_quadra = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'V', 'X', 'Y', 'W', 'Z');
		}
		
			
		//Array com nomenclatura das unidades
		if( arr::get($_POST, 'nomenclatura_unidade') == '1' ) //numeros
		{	
			for ($i = 0; $i < 1000; $i++)
				$array_nomenclatura_unidade[] = $i+1;
		}
		else
		{	
			$array_nomenclatura_unidade = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'V', 'X', 'Y', 'W', 'Z');	
		}
		
		
		$cont = 1;
		
		//casa
		if(arr::get($_POST, 'tipo') == '1')
		{
			if(arr::get($_POST, 'conf_estrutura') == '1')//Casa cadastro fixo
			{
				//cadastra as quadras/blocos
				for ($i = 0; $i < (int) arr::get($_POST, 'quant_bloco'); $i++)
				{
					$quadra = ORM::factory('quadra');
					$quadra->nome = $array_nomenclatura_quadra[$i];
					$quadra->estrutura_id = $id_estrutura;
					$quadra->save();
					
					$quadra_id = $quadra->id;
					
					//cadastra os immoveis da quadra
					for ($j = 0; $j < (int) $_POST['quant_imoveis'][0]; $j++)
					{
						$unidade = ORM::factory('unidade');
						if( (int) arr::get($_POST, 'flag_sequencial') == 1 )
							$unidade->nome = $cont;
						else
							$unidade->nome = $array_nomenclatura_unidade[$j];
							
						$unidade->quadra_id = $quadra_id;
						$unidade->andar_id = 0;
						$unidade->save();
						$cont++;
					}
				}
			}// Fim Casa cadastro fixo
			
			else//Casa cadastro dinamico
			{
				//cadastra as quadras/blocos
				for ($i = 0; $i < (int) arr::get($_POST, 'quant_bloco'); $i++)
				{
					$quadra = ORM::factory('quadra');
					$quadra->nome = $array_nomenclatura_quadra[$i];
					$quadra->estrutura_id = $id_estrutura;
					$quadra->save();
					
					$quadra_id = $quadra->id;
					
					//cadastra os immoveis da quadra
					for ($j = 0; $j < (int) $_POST['quant_imoveis'][$i]; $j++)
					{
						$unidade = ORM::factory('unidade');
						if( (int) arr::get($_POST, 'flag_sequencial') == 1 )
							$unidade->nome = $cont;
						else
							$unidade->nome = $array_nomenclatura_unidade[$j];
							
						$unidade->quadra_id = $quadra_id;
						$unidade->andar_id = 0;
						$unidade->save();
						$cont++;
					}
				}
			}//Fim casa cadastro dinamico
			
			
		}
		//Apartamento
		else 
		{
			if(arr::get($_POST, 'conf_estrutura') == '1')//Apartamento cadastro fixo
			{
				//cadastra as quadras/blocos
				for ($i = 0; $i < (int) arr::get($_POST, 'quant_bloco'); $i++)
				{
					$quadra = ORM::factory('quadra');
					$quadra->nome = $array_nomenclatura_quadra[$i];
					$quadra->estrutura_id = $id_estrutura;
					$quadra->save();
					
					$quadra_id = $quadra->id;
					
					//cadastra Torres
					for ($j = 0; $j < (int) $_POST['quant_torres'][0]; $j++)
					{
						$torre = ORM::factory('torre');
						$torre->nome = ($j+1);
						$torre->quadra_id = $quadra_id;
						$torre->save();
						
						$torre_id = $torre->id;
						
						//cadastra Andares
						for ($k = 1; $k <= (int) $_POST['quant_andares'][0]; $k++)
						{							
							$andar = ORM::factory('andar');
							$andar->nome = ($k-1);
							$andar->torre_id = $torre_id;
							$andar->save();

							$andar_id = $andar->id;
							
							//verifica se é o último andar e se tem cobertura
							if( ( $k == (int) $_POST['quant_andares'][0] ) AND ( (int) $_POST['coberturas'][0] != 0 ) )
							{
								//cadastra Cobertura (unidades)
								for ($l = 1; $l <= (int) $_POST['coberturas'][0]; $l++)
								{
									$unidade = ORM::factory('unidade');
									$unidade->nome = ($l+ (100*$k));
									$unidade->quadra_id = 0;
									$unidade->andar_id = $andar_id;
									$unidade->cobertura_flag = 1;
									$unidade->save();
								}
							}
							else
							{
								//cadastra Apartamentos (unidades)
								for ($l = 1; $l <= (int) $_POST['quant_imoveis'][0]; $l++)
								{
									$unidade = ORM::factory('unidade');
									$unidade->nome = ($l+ (100*$k));
									$unidade->quadra_id = 0;
									$unidade->andar_id = $andar_id;
									$unidade->cobertura_flag = 0;
									$unidade->save();
								}
							}
							
						}
					}
				}
				
			}
		}
	}
}
?>